﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Configuration;
using ENProyecto7;

namespace WebProyectoSIETE
{
    public partial class Taberna : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // se comprueba si el usuario esta registrado
            if (Session["usuario"] == null) Response.Redirect("Default.aspx");
        }

        protected void Comprar_Click(Object sender, CommandEventArgs e)
        {
            SqlDataSourceTaberna.SelectCommand = "SELECT Objeto.nombreObjeto, Taberna.precioObjetoTaberna, Objeto.idObjeto FROM Taberna INNER JOIN Objeto ON Taberna.idObjetoTaberna = Objeto.idObjeto WHERE (Objeto.idObjeto = " + int.Parse(e.CommandName) + ")";

            DataView dv = (DataView)SqlDataSourceTaberna.Select(DataSourceSelectArguments.Empty);

            if (dv.Table.Rows.Count > 0)
            {
                if (int.Parse(e.CommandArgument.ToString()) >= (int.Parse(dv.Table.Rows[0][1].ToString())))
                {
                    int resta = int.Parse(e.CommandArgument.ToString()) - int.Parse(dv.Table.Rows[0][1].ToString());
                    SqlDataSourceTaberna.UpdateCommand = "UPDATE Usuario SET dineroUsuario = " + resta + " WHERE idUsuario=" + Session["idUsuario"];
                    SqlDataSourceTaberna.Update();

                    SDSObjetoUsuario.SelectCommand = "SELECT * FROM ObjetoUsuario WHERE idObjeto = " + int.Parse(dv.Table.Rows[0][2].ToString()) + " AND idUsuario= " + Session["idUsuario"];

                    DataView objeto = (DataView)SDSObjetoUsuario.Select(DataSourceSelectArguments.Empty);

                    if (objeto.Table.Rows.Count > 0)
                    {
                        SDSObjetoUsuario.UpdateCommand = "UPDATE ObjetoUsuario SET cantidad = " + (int.Parse(objeto.Table.Rows[0][2].ToString()) + 1) + " WHERE idObjeto = " + int.Parse(dv.Table.Rows[0][2].ToString()) + " AND idUsuario= " + Session["idUsuario"];
                        SDSObjetoUsuario.Update();
                    }
                    else
                    {
                        SDSObjetoUsuario.InsertCommand = "INSERT INTO ObjetoUsuario(idObjeto, idUsuario, cantidad) VALUES (" + int.Parse(dv.Table.Rows[0][2].ToString()) + "," + Session["idUsuario"] + ",1)";
                        SDSObjetoUsuario.Insert();
                    }

                    Response.Write("<script type='text/javascript'>alert('Enorabuena has adquirido: " + dv.Table.Rows[0][0].ToString() + "');</script>");
                }
                else
                {
                    Response.Write("<script type='text/javascript'>alert('No tienes suficiente oro');</script>");
                }
            }

            SqlDataSourceTaberna.SelectCommand = "SELECT Objeto.idObjeto, Objeto.nombreObjeto, Objeto.ataqueObjeto, Objeto.defensaObjeto, Objeto.curacionObjeto, Objeto.descripcionObjeto, Objeto.imagenObjeto, Taberna.precioObjetoTaberna, TipoObjeto.nombreTipoObjeto, Usuario.dineroUsuario FROM Objeto INNER JOIN Taberna ON Objeto.idObjeto = Taberna.idObjetoTaberna INNER JOIN TipoObjeto ON Objeto.tipoObjeto = TipoObjeto.idTipoObjeto CROSS JOIN Usuario WHERE (Usuario.nombreUsuario = @nombre)";

        }
    }
}